ממשק משתמש גרפי בעזרת SWT. תוכנה 1 בשפת Java

Size: px
Start display at page:

Download "ממשק משתמש גרפי בעזרת SWT. תוכנה 1 בשפת Java"

Transcription

1 ממשק משתמש גרפי בעזרת SWT תוכנה 1 בשפת Java 1

2 SWT ה בנויה על העיקרון של publish/subscribe אלמנטים בסיסיים )Widgets( מייצרים אירועים )Events( שאליהם נרשמים מאזינים )Listener( דוגמא 1: משתמש לוחץ על כפתור, שמייצר אירוע לחיצה. מאזין שנרשם לאירוע הלחיצה של הכפתור יכול לשנות את כותרת החלון דוגמא 2: משתמש סוגר את החלון, שמייצר אירוע סגירת חלון. מאזין שנרשם לאירוע סגירת החלון פותח חלון ששואל את המשתמש אם הוא רוצה לשמור את השינויים לפני שיצא מהתכנית. Widgets מאזינים וה- Events מוגדרים ע"י כותבי הספרייה נכתבים ע"י כותבי האפליקציה מאפשר תגובות שונות לאירועים כתלות באפליקציה 2

3 SWT Widgets אבני הבניין של ממשקים גרפים מוגדרים ב org.eclipse.swt.widgets תת-טיפוסים של המחלקה האבסטרקטית Widget )קישור לתיעוד( האתר של SWT מכיל דוגמאות קצרות )snippets( לשימוש בכל Widget Shell Table Menu Label Text List Button 3

4 עוד על Widgets ביצירת Widget את ה"הורה" שלו את הסגנון שלו ה- נגדיר ההורה הוא Widget היורש מ- Composite, מה שאומר שניתן להוסיף אליו Widgets אחרים לדוגמא, כפתור שההורה שלו הוא טאב שההורה שלו הוא חלון יופיע כפתור בתוך הטאב שבחלון Widget מתווסף להורה בזמן הקריאה לבנאי עבור סגנונות קיימים קבועים במחלקה SWT נראה בהמשך

5 כפתור public class ShellWithButton1 { public static void main(string[] args) { Display display = Display.getDefault(); Shell shell = new Shell(display); shell.setlayout(new FillLayout(SWT.VERTICAL)); shell.settext("example1"); Button ok = new Button(shell, SWT.PUSH); ok.settext("push Me!"); shell.pack(); shell.open(); while (!shell.isdisposed()) { if (!display.readanddispatch()) display.sleep(); display.dispose(); 5

6 אז מה היה לנו כאן? Display display = Display.getDefault(); מקשר בין SWT לתצוגת מערכת ההפעלה )למשל, המסך( Display Shell shell = new Shell(display); חלון. שימו לב שיצירת חלון לא פותחת אותו עדין. Shell shell.setlayout(new FillLayout(SWT.VERTICAL)); לכל Composite ניתן להוסיף layout שיגדיר כיצד Widgets מסודרים בתוכו ממלאים את ה- Composite Widgets ה- FillLayout ה- Widgets מסודרים בצורה אנכית לפי סדר הוספתם ל- SWT.VERTICAL Composite דומה ל-,FillLayout אבל ה- Widgets שומרים על גודל RowLayout קבוע מסדר את ה- Widgets בגריד )לפי עמודות ושורות( GridLayout 6

7 אז מה היה לנו כאן? shell.settext("example1"); Button ok = new Button(shell, SWT.PUSH); ok.settext("push Me!"); משתנה בהתאם לטיפוס ה-.Widget בחלון קובע את settext קובע מה כתוב על הכפתור. shell.pack(); הכותרת, בכפתור לחיצה )PUSH( גורם לאובייקט גרפי לחשב ולהתאים את גודלו, למשל בהתאם pack ל- layout, ל- Widgets שבתוכו וכו' shell.open(); פתיחת החלון 7

8 לולאת האירועים loop( )Event while (!shell.isdisposed ()) { if (!display.readanddispatch()) display.sleep(); display.dispose(); קוד סטנדרטי שמופיע כמעט בכל תכנית SWT כל עוד החלון הראשי של התכנית לא נסגר טפל באירוע הבא בתור ובדוק האם קיים אירוע נוסף אם לא קיים היכנס למצב שינה עד לקבלת אירוע נוסף בסוף משחררים את כל המשאבים שהוקצו ע"י קריאה ל- dispose כאשר משחררים אלמנט גרפי, כל הצאצאים שלו גם משתחררים כאשר משחררים את,Display כל המשאבים הגרפיים משתחררים 8

9 לולאת האירועים loop( )Event מערכת ההפעלה מודיעה לתוכנית על אירועים: הקשות על המקלדת, הזזת עכבר והקלקה, בחירת אלמנטים, ועוד. ההודעה מתקבלת על ידי עצם יחיד ( singleton )מהמחלקה Display, שמייצג את מערכת ההפעלה קבלת אירוע מעירה את התוכנית מהשינה ב- sleep כאשר קוראים ל- readanddispatch ה- display מברר לאיזה רכיב צריך להודיע על האירוע, ומודיע לו הרכיב מפעיל את העצמים מהטיפוס המתאים לסוג האירוע שנרשמו להפעלה על ידי קריאה ל- addlistener 9

10 הכפתור לא מגיב ללחיצות. הוספת טיפול בארועים יש להוסיף טיפול על המחלקה המטפלת לממש את המנשק SelectionListener על הכפתור עצמו להגדיר מי העצם באירוע כמה גישות אפשריות: הגדרת מחלקה שיורשת מכפתור מחלקה שמכילה כפתור כאחד משדותיה בארוע "לחיצה" )או העצמים( שיטפלו הוספת מאזין שיטפל באירועי הלחיצה בעת יצירת הכפתור המימושים שנראה היום משתייכים לגישה השלישית 10

11 הכפתור לא מגיב ללחיצות. הוספת טיפול בארועים יש להוסיף טיפול באירוע עלינו לממש מאזין המקבל שמטפל באירוע הווידג'ט המתאים. כיצד נדע אילו אירועים מייצר Widget מסוים? נסתכל בתיעוד התיעוד של :Button ולהרשם "לחיצה" על איזה מנשק עלינו לממש? 11

12 טיפול בארועים במחלקה נפרדת public class ButtonHandler implements SelectionListener { public void widgetselected(selectionevent e) { if (e.getsource() instanceof Button) { Button b = (Button) e.getsource(); b.settext("thanks!"); public void widgetdefaultselected(selectionevent e){ // TODO Auto-generated method stub 12

13 טיפול בארועים במחלקה נפרדת Display display = Display.getDefault(); Shell shell = new Shell(display); shell.setlayout(new FillLayout(SWT.VERTICAL)); shell.settext("example2"); Button ok = new Button(shell, SWT.PUSH); ok.settext("push Me!"); ok.addselectionlistener(new ButtonHandler()); shell.pack(); shell.open(); while (!shell.isdisposed()) { if (!display.readanddispatch()) display.sleep(); display.dispose(); 13

14 טיפול בארועים במחלקה נפרדת לעיתים הטיפול באירוע דורש הכרות אינטימית עם המקור )כדי להימנע מחשיפת המבנה הפנימי של המקור( שימוש במחלקה פנימית יוצר את האינטימיות הדרושה בדוגמא הבאה נרצה לעדכן תווית על סמך קלט מהמשתמש דרושה הכרות לא רק עם יוצר האירוע )Text( אלא גם עם חלקים אחרים במבנה 14

15 מחלקה פנימית public class ShellWithLabelAndTextField1 { private Label label; private Text text; public static void main(string[] args) {... public void createshell() {... המחלקה הפנימית ניגשת לשדות הפרטיים של המחלקה העוטפת public class InnerHandler implements KeyListener { public void keypressed(keyevent e) { if (e.character == SWT.CR) { label.settext(text.gettext()); text.settext(""); public void keyreleased(keyevent e) { // TODO Auto-generated method stub 15

16 מחלקה פנימית public class ShellWithLabelAndTextField1 { private Label label; private Text text; public static void main(string[] args) { ShellWithLabelAndTextField1 shell = new ShellWithLabelAndTextField1(); shell.createshell(); public void createshell() { Display display = new Display(); Shell shell = new Shell(display); shell.setlayout(new RowLayout(SWT.VERTICAL)); label = new Label(shell, SWT.CENTER); label.settext("type text and press [ENTER]"); text = new Text(shell, SWT.LEFT); text.addkeylistener(new InnerHandler()); // pack(), open(), while... Dispose() 16

17 שימוש במחלקות אנונימיות בדרך כלל נזדקק רק למאזין יחיד לכל אירוע נשתמש במחלקה לוקאלית אנונימית תזכורת: new classname([argument-list]) {classbody יצירת מופע חדש של מחלקה ללא שם, שטרם הוגדרה, שיורשת באופן אוטומטי מ classname new interfacename() {classbody יצירת מופע חדש של מחלקה ללא שם, שטרם הוגדרה, שמממשת באופן אוטומטי את interfacename 17

18 מחלקה אנונימית public class ShellWithLabelAndTextField2 { private Label label; private Text text; public static void main(string[] args) {... public void createshell() {... text.addkeylistener(new KeyListener() { public void keypressed(keyevent e) { if (e.character == SWT.CR) { label.settext(text.gettext()); text.settext(""); public void keyreleased(keyevent e) { // TODO Auto-generated method stub ); סוגר סוגריים של המתודה addkeylistener() // pack(), open(), while... Dispose() 18

19 שימוש ב Adapter public class ShellWithLabelAndTextField2 { private Label label; private Text text; public static void main(string[] args) {... public void createshell() {... text.addkeylistener(new KeyAdapter() { public void keypressed(keyevent e) { if (e.character == SWT.CR) { label.settext(text.gettext()); text.settext(""); ); public class KeyAdapter implements KeyListener public void keypressed(keyevent arg0) { //do public void keyreleased(keyevent arg0) { // do nothing // pack(), open(), while... Dispose() 19

20 המחלקה SWT... מוגדרת ב org.eclipse.swt.swt אוסף של קבועים: אירועים,Activate,MouseDown,FocusIn,Close צבעים,COLOR_BLACK,COLOR_BLUE... תווים,CR,ESC,DEL... אירוע מקשים,ARROW_DOWN,END... עיצובים ניתן להוסיף מס' )bitwise OR( קבועים ע"י שימוש באופרטור SWT.V_SCROLL SWT.H_SCROLL SWT.BORDER 20

21 דוגמא נוספת רשימת משימות public class TaskList1 { private static final Display display = Display.getDefault(); private static Shell shell; public static void main(string[] args) { TaskList1 tasklist = new TaskList1(); tasklist.createshell(); tasklist.runapplication(); private void createshell() { shell = new Shell(display); shell.settext("my Tasks"); private void runapplication() { shell.pack(); shell.open(); while (!shell.isdisposed()) { if (!display.readanddispatch()) display.sleep(); display.dispose(); נכתוב אפליקציית SWT פשוטה המאפשרת להזין משימות בשדה טקסט, ללחוץ על כפתור ולהוסיף את הטקסט שהוזן לרשימה. נתחיל מבניית שלד האפליקציה 21

22 הוספת Widgets private void createshell() { shell = new Shell(display); shell.settext("my Tasks"); shell.setlayout(new FillLayout(SWT.VERTICAL)); נוסיף Layout בסיסי ל- Shell, וכן שדה טקסט, כפתור ורשימה כרגע אין מאזינים לאף פעולה //a text field to enter a task Text input = new Text(shell, SWT.LEFT); //a button to add a task to the list Button add = new Button(shell, SWT.PUSH); add.settext("add"); //the list List list = new List(shell, SWT.BORDER); 22

23 הוספת פונקציונליות //a text field to enter a task final Text input = new Text(shell, SWT.LEFT); //a button to add a task to the list Button add = new Button(shell, SWT.PUSH); add.settext("add"); // the list final List list = new List(shell, SWT.BORDER); // the action to perform when pressing the button add.addselectionlistener(new SelectionAdapter() public void widgetselected(selectionevent e) { String text = input.gettext(); //add the task to the list, if the input text is not empty if (text!= null && text.length() > 0) { list.add(text); input.settext(""); ); כעת, נוסיף את הפעולה של לחיצה על כפתור תוך שימוש במחלקה אנונימית. הכפתור צריך להכיר את משתנים מקומיים ולכן נשנה ל-.final לחלופין אפשר שיהיו effectively final 23

24 נטפל בעיצוב החלון Add תחילה, נתכנן איך היינו רוצים שהחלון ייראה וכיצד הוא ישתנה בשינוי גודל החלון Add Add Add 24

25 עיצוב החלון shell = new Shell(display); shell.settext("my Tasks"); shell.setlayout(new GridLayout(2, false)); // a text field to enter a task final Text input = new Text(shell, SWT.LEFT); input.setlayoutdata(new GridData( GridData.FILL_HORIZONTAL)); // a button to add a task to the list Button add = new Button(shell, SWT.FLAT); add.settext("add"); // the list final List list = new List(shell, SWT.BORDER); GridData listgriddata = new GridData(GridData.FILL_BOTH); listgriddata.horizontalspan = 2; listgriddata.widthhint = 300; listgriddata.heighthint = 300; list.setlayoutdata(listgriddata); נשתמש ב- GridLayout מוסיף אלמנטים לגריד משמאל לימין ומלמעלה למטה לפי הסדר מאפשר הוספת GridData שמציין איך כל Widget יתנהג בגריד הרשימה נמתחת לרוחב ולאורך, תופסת שני טורים, וגודלה המומלץ 300x300 פיקסלים שדה הטקסט נמתח לרוחב שני טורים ברוחב לא אחיד 25

26 עיצוב החלון עכשיו האפליקציה שלנו נראית כך עוד תוספות? סימון משימה כ"הושלמה" הוספת תאריך יצירת המשימה הוספת תאריך יעד לביצוע המשימה עריכת משימה מחיקת משימה... 26

27 תוספת - מחיקת משימות מהרשימה נוסיף delete לרשימה שיאזין ללחיצה על KeyListener מ- Widget הרשימה ניתן לקבל את האינדקס של הפריט הנבחר ולמחוק את הפריט // the action to perform when DELETE is pressed on the list list.addkeylistener(new KeyAdapter() public void keypressed(keyevent e) { if (e.character == SWT.DEL) { int selectionindex = list.getselectionindex(); //if a list item is selected, delete it from the list if (selectionindex >= 0) list.remove(selectionindex); ); 27

ממשק משתמש גרפי בעזרת SWT

ממשק משתמש גרפי בעזרת SWT ממשק משתמש גרפי בעזרת SWT מה עושים היום? קריאת Stack Trace של חריגה hashcode ו- equals ממשק משתמש גרפי תוכנה 1 בשפת Java 2 1 Interpreting Stack Trace of an Exception Exception in thread "main" java.lang.outofmemoryerror:

More information

public class B { private int f = 0; public static void main(string[] args) { B b1 = new B(); B b2 = new B(); Object b3 = b1;

public class B { private int f = 0; public static void main(string[] args) { B b1 = new B(); B b2 = new B(); Object b3 = b1; main /***/ public class B { private int f = 0; public static void main(string[] args) { B b1 = new B(); B b2 = new B(); Object b3 = b1; System.out.println(/***/); @Override public boolean equals(object

More information

מבוא למדעי המחשב תרגול 8 רשימה משורשרת כללית, Comparator

מבוא למדעי המחשב תרגול 8 רשימה משורשרת כללית, Comparator מבוא למדעי המחשב 2017 תרגול 8 רשימה משורשרת כללית, Comparator בתרגול היום. LinkedList בניית ההכללה מ- LinkIntList תרגול המבנה ושימושיו ממשקים: Comparator Sorted Linked List ל- LinkedList ע"י שימוש ב- Comparator

More information

תוכנה 1 סמסטר א' תשע"א

תוכנה 1 סמסטר א' תשעא General Tips on Programming תוכנה 1 סמסטר א' תשע"א תרגול מס' 6 מנשקים, דיאגרמות וביטים * רובי בוים ומתי שמרת Write your code modularly top-down approach Compile + test functionality on the fly Start with

More information

דף הדרכה ליצירת שרת/ לקוח עם GUI

דף הדרכה ליצירת שרת/ לקוח עם GUI דף הדרכה ליצירת שרת/ לקוח עם GUI בשיעורים הקודמים למדנו כיצד ליצור שרת לקוח פשוט, ויצירת טופס המכיל פקדים כלומר יצירת GUI למשתמש, בשיעור זה נרצה להראות את הדרך לשילוב בין השניים כלומר ליצור לקוח client

More information

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes תוכנה 1 תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes class Outer { static class NestedButNotInner {... class Inner {... מחלקות מקוננות NESTED CLASSES 2 מחלקה מקוננת Class) )Nested

More information

ASP.Net Web API.

ASP.Net Web API. ASP.Net Web API 1 מה זה? Web API View בלבד ולא Data אותו מממש השרת והוא מחזיר לקליינט API הוא Web API הבקשה והתשובה הן בפרוטוקול Http\Https הקליינטים של Web API יכולים להיות רבים : אפשר להשתמש גם בMVC

More information

DB Programming - Cont. Database Systems

DB Programming - Cont. Database Systems DB Programming - Cont Database Systems 1 Agenda SWT Updating the UI (Why do we need Threads?) 2 SWT (Standard Widget Toolkit) Developed by IBM, maintained today by Eclipse Easy implementation Not portable

More information

DB Programming - Cont. Database Systems

DB Programming - Cont. Database Systems DB Programming - Cont Database Systems 1 Agenda SWT Updating the UI (Why do we need Threads?) 2 Other JAVA UIs AWT (Abstract Windowing Toolkit) - standard for all platforms too simple.. - Least Common

More information

DB Programming - Cont. Database Systems

DB Programming - Cont. Database Systems DB Programming - Cont Database Systems 1 Agenda Project Details SWT Updating UI (Why do we need Threads?) 2 Agenda Project Details SWT Updating UI (Why do we need Threads?) 3 Other JAVA UI AWT (Abstract

More information

תוכנה 1 ומחלקות פנימיות

תוכנה 1 ומחלקות פנימיות תוכנה 1 Design Patterns ומחלקות פנימיות תרגול 11: 1 Design Patterns A general reusable solution to recurring design problems. Not a recipe A higher level language for design Factory, Singleton, Observer

More information

תוכנה 1 * לא בהכרח בסדר הזה

תוכנה 1 * לא בהכרח בסדר הזה תוכנה 1 תרגול 7: מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה 2 מנשקים מנשקים מנשק )interface( הוא מבנה תחבירי ב- Java המאפשר לחסוך בקוד לקוח. מנשק מכיל כותרות של מתודות המימוש שלהן. )חתימות( ללא קוד אשר

More information

תוכנה 1 * לא בהכרח בסדר הזה

תוכנה 1 * לא בהכרח בסדר הזה תוכנה 1 תרגול 7: מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה 2 מנשקים מנשקים - תזכורת מנשק )interface( הוא מבנה תחבירי ב- Java המאפשר לחסוך בקוד לקוח. מנשק מכיל כותרות של מתודות )חתימות(. מימוש דיפולטיבי

More information

מערכים שעור מס. 4 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

מערכים שעור מס. 4 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 מערכים שעור מס. 4 דרור טובי דר' כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 למה מערכים? ברצוננו לאחסן בתוכנית ציוני בחינה כדי לחשב את ממוצע הציונים וסטיית התקן. נניח ש 30 סטודנטים לקחו

More information

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions מבוא לתיכנות עם MATLAB 234127 Lecture 5: Boolean logic and Boolean expressions Written by Prof. Reuven Bar-Yehuda, Technion 2013 Based on slides of Dr. Eran Eden, Weizmann 2008 1 >>g = [89 91 80 98]; >>p

More information

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes בית הספר למדעי המחשב אוניברסיטת תל אביב

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1 תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes בית הספר למדעי המחשב אוניברסיטת תל אביב 1 2 STATIC VS. DYNAMIC BINDING 3 Static versus Dynamic Binding public class Account

More information

תוכנה 1 תרגול מספר 13

תוכנה 1 תרגול מספר 13 1 תוכנה 1 תרגול מספר 13 ו- HashCode Equals עוד על טיפוסים מוכללים )Advanced Generics( חריגים )Exceptions( בית הספר למדעי המחשב אוניברסיטת תל אביב 1 2 ו- HASHCODE EQUALS 3 תזכורת: המחלקה Object package

More information

תוכנה 1 תרגול מספר 13

תוכנה 1 תרגול מספר 13 1 2 תוכנה 1 תרגול מספר 13 ו- HashCode Equals עוד על טיפוסים מוכללים )Advanced Generics( ו- HASHCODE EQUALS חריגים )Exceptions( בית הספר למדעי המחשב אוניברסיטת תל אביב 1 3 4 package java.lang; תזכורת: המחלקה

More information

הרצאה מספר: GUI components רכיבים נוספים חלק ג' צבי מלמד מכללת הדסה/מכללה חרדית כל הזכויות שמורות תכנות ג'אווה + אינטרנט JAVA & WEB PROGRAMMING

הרצאה מספר: GUI components רכיבים נוספים חלק ג' צבי מלמד מכללת הדסה/מכללה חרדית כל הזכויות שמורות תכנות ג'אווה + אינטרנט JAVA & WEB PROGRAMMING הרצאה מספר: #07 GUI components רכיבים נוספים חלק ג' תכנות ג'אווה + אינטרנט JAVA & WEB PROGRAMMING צבי מלמד מכללת הדסה/מכללה חרדית כל הזכויות שמורות 1 המחלקה JOptionPane אפליקציות רבות משתמשות ב- dialog

More information

# & % # $ ' % # % # % # # ' Java (

# & % # $ ' % # % # % # # ' Java ( GUI ! " # &%# $ ' %# %# % # # ' ( %# # $ # ) * % + $, widget - . public class HelloSwt { Display } public static void main(string[] args) { } Display display = new Display(); Shell shell = new Shell(display);

More information

הקלחמ ה תמרב ת ונ וכ ת (static members ) יליזרב דהוא Java תפשב ם דקת מ תונכת ביבא ל ת תטיסרבינוא

הקלחמ ה תמרב ת ונ וכ ת (static members ) יליזרב דהוא Java תפשב ם דקת מ תונכת ביבא ל ת תטיסרבינוא ת כו נו ת ברמת ה מחלקה (static members) אוהד ברזילי תכנות מ תקד ם בשפת Java אוניברסיטת ת ל אביב static keyword שדות המוגדרים כ static מציינים כי הם מוגדרים ברמת המחלקה ולא ברמת עצם כל העצמים של אותה מחלקה

More information

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions מבוא לתיכנות עם MATLAB 23427 Lecture 5: Boolean logic and Boolean expressions Written by Prof. Reuven Bar-Yehuda, Technion 203 Based on slides of Dr. Eran Eden, Weizmann 2008 ביטויים לוגיים דוגמא: תקינות

More information

הנכות 1 תואיגש םע תודדומתהו תואלול,םי : כרעמ 2 לוגרת

הנכות 1 תואיגש םע תודדומתהו תואלול,םי : כרעמ 2 לוגרת תוכנה 1 תרגול 2: מערכים, לולאות והתמודדות עם שגיאות מערכים מערכים Array: A fixed-length data structure for storing multiple values of the same type Example from last week: An array of odd numbers: Indices

More information

תוכנה 1 תרגול 2: מערכים ומבני בקרה

תוכנה 1 תרגול 2: מערכים ומבני בקרה תוכנה 1 תרגול 2: מערכים ומבני בקרה 2 Useful Eclipse Shortcuts Ctrl+1 quick fix for errors, or small refactoring suggestions Ctrl+SPACE code content assist (auto-completion) Auto completion for main create

More information

הנכות 1 תואיגש םע תודדומתהו תואלול,םיכרעמ : לו 2 גרת

הנכות 1 תואיגש םע תודדומתהו תואלול,םיכרעמ : לו 2 גרת תוכנה 1 תרגול 2: מערכים, לולאות והתמודדות עם שגיאות מערכים Array: A fixed-length data structure for storing multiple values of the same type Example from last week: An array of odd numbers: Indices (start

More information

תוכנה 1 תרגול 2: מערכים, מבני בקרה ושגיאות

תוכנה 1 תרגול 2: מערכים, מבני בקרה ושגיאות תוכנה 1 תרגול 2: מערכים, מבני בקרה ושגיאות מערכים Array: A fixed-length data structure for storing multiple values of the same type Example: An array of odd numbers: Indices (start from 0) 0 1 2 3 4 5

More information

תזכורת: עץבינארי מבוא למדעי המחשב הרצאה 24: עצי חיפוש בינאריים

תזכורת: עץבינארי מבוא למדעי המחשב הרצאה 24: עצי חיפוש בינאריים מבוא למדעי המחשב הרצאה 2: עצי חיפוש בינאריים תזכורת: עץבינארי בנוסףלרשימהמקושרת ומערך, הצגנומבנהנתונים קונקרטיחדש עץבינארי עץבינארימורכבמ: שורש תת-עץשמאלי תת-עץימני A B C D E F G 2 תזכורת: שורש ותתי-עצים

More information

מבוא למדעי המחשב תירגול 2: מבוא למדעי המחשב מ' - תירגול 2

מבוא למדעי המחשב תירגול 2: מבוא למדעי המחשב מ' - תירגול 2 מבוא למדעי המחשב תירגול 2: לולאות, קלט, וטיפוסים 1 תוכנייה לולאת while קלט טיפוסי משתנים המרת טיפוסים טיפוס char 2 לולאת while 3 לולאת while קטע קוד מתבצע שוב ושוב כל עוד תנאי מתקיים int number = 40; while(number>0)

More information

מבוא למדעי המחשב תירגול 3:

מבוא למדעי המחשב תירגול 3: מבוא למדעי המחשב תירגול 3: לולאות, קלט, וטיפוסים תוכנייה לולאת while קלט טיפוסי משתנים המרת טיפוסים טיפוס char מבוא למדעי המחשב מ' - תירגול 3 2 לולאת while מבוא למדעי המחשב מ' - תירגול 3 3 לולאת while

More information

משתנים שעור מס. 2 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

משתנים שעור מס. 2 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 משתנים שעור מס. 2 דרור טובי דר' כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 תפקיד המשתנים הצהרה על משתנה השמת ערך במשתנה int a, b, c; a = 1234; b = 99; c = a + b; משתנים מאפשרים לנו לשמור

More information

הנכות 1 םוכיס לוגרת 13 1

הנכות 1 םוכיס לוגרת 13 1 תוכנה 1 סיכום תרגול 13 1 בחינה באופק! הבחינה תכלול את כל הנושאים שכיסינו במהלך הסמסטר: כל ההרצאות כל תרגולים כל תרגילי בית חומר סגור שאלות אמריקאיות 2 קצת על מנשקים מנשק יכול להרחיב שירותים במנשק הם תמיד

More information

הנכות 1 םוכיס לוגרת 13 1

הנכות 1 םוכיס לוגרת 13 1 תוכנה 1 סיכום תרגול 13 1 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים במנשק הם תמיד מופשטים וציבוריים public interface MyInterface { public abstract int foo1(int i); int foo2(int i); The modifiers

More information

Simple Web Service. namespace MyService { public class Service1 : System.Web.Services.WebService {

Simple Web Service. namespace MyService { public class Service1 : System.Web.Services.WebService { Simple Web Service WS פתיחת פרוייקט File New Project ASP.Net web service project - >http://localhost/webservice1 יצירת שירות המחשב חיבור וחילוק 2 מספרים : הטיפוסים הבסיסיים using System; איסוף וניהוף אוספי

More information

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתכנות ב- JAVA תרגול 7 מבוא לתכנות ב- JAVA תרגול 7 רקורסיה - הקדמה הגדרה רקורסיבית: חדר הוא מסודר אם צד שמאל שלו מסודר שלו מסודר. וצד ימין שיטת פתרון רקורסיבית: פתרון מופעים פשוטים יותר של בעיה בכדי לפתור את הבעיה המקורית רקורסיה

More information

היצביט ומ - ןוכית ת וי נבת

היצביט ומ - ןוכית ת וי נבת תבני ו ת תיכון Patterns) (Design תבנ יו ת תיכון - מו טיבציה בחיי היום יום אנחנו מתארים דברים תוך שימוש בתבניות חוזרות: "מכונית א' היא כמו מכונית ב', אבל יש לה 2 דלתות במקום 4" "אני רוצה ארון כמו זה, אבל

More information

תוכנה 1 * לא בהכרח בסדר הזה

תוכנה 1 * לא בהכרח בסדר הזה תוכנה 1 תרגול 7: מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה 2 מנשקים מנשקים מנשק )interface( הוא מבנה תחבירי ב- Java המאפשר לחסוך בקוד לקוח. מנשק מכיל כותרות של מתודות המימוש שלהן. )חתימות( ללא קוד אשר

More information

- MEAN Stack חזרה. MongoDB - as the database Express - as the web framework AngularJS - as the frontend framework NodeJS- as the server platform

- MEAN Stack חזרה. MongoDB - as the database Express - as the web framework AngularJS - as the frontend framework NodeJS- as the server platform הדר פיקאלי תשע"ו - 2016 - MEAN Stack חזרה בניית web applications כרוכה בשימוש בטכנולוגיות וכלים שונים, להתמודדות עם: מסד נתונים, פעולות בצד השרת, טיפול בצד הלקוח והצגה של הנתונים. מהו?MEAN "MEAN is a fullstack

More information

תוכנה 1 בשפת Java נושאים שונים בהורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב

תוכנה 1 בשפת Java נושאים שונים בהורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1 בשפת Java נושאים שונים בהורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב Today Static vs. Dynamic binding Equals / hashcode String Immutability (maybe) 2 Static versus run-time

More information

מבוא לתכנות בשפת C. Tzachi (Isaac) Rosen

מבוא לתכנות בשפת C. Tzachi (Isaac) Rosen מבוא לתכנות בשפת C מצביעים והקצאה דינאמית כתובות של משתנים לכל משתנה כתובת של המקום שלו בזיכרון כבר ראינו: שם של מערך הוא למעשה הכתובת של התא הראשון )באינדקס 0( של המערך להזכירכם: תא של מערך הינו משתנה

More information

Algorithms. Intro2CS week 5

Algorithms. Intro2CS week 5 Algorithms Intro2CS week 5 1 Computational problems A computational problem specifies an inputoutput relationship What does the input look like? What should the output be for each input? Example: Input:

More information

Communication Networks ( ) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner

Communication Networks ( ) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner Communication Networks (0368-3030) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University Allon Wagner Kurose & Ross, Chapter 3.5.5, 3.7 (5 th ed.) Many slides adapted from: J. Kurose

More information

תכנות מונחה עצמים משחקים תשע"ו

תכנות מונחה עצמים משחקים תשעו move semantics 1 תכנות מונחה עצמים ופיתוח משחקים תשע"ו סמנטיקת ההעברה semantics( )Move move semantics 2 מטרה האצה של התוכניות, שיפור בביצועים על ידי חסכון בבנייה והעתקה של אובייקטים זמניים move semantics

More information

תכנות מתקדם בשפת C משתנים

תכנות מתקדם בשפת C משתנים תכנות מתקדם בשפת C משתנים 1 משתנים סוגי משתנים בשפת C ההבדלים בין סוגי המשתנים השונים 2 /* This program computes m to the power of n */ /* Assumptions: m is an integer; n is a positive integer */ #include

More information

הנכות 1 םוכיס לוגרת 14 1

הנכות 1 םוכיס לוגרת 14 1 תוכנה 1 סיכום תרגול 14 1 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים במנשק הם תמיד מופשטים וציבוריים public interface MyInterface { public abstract int foo1(int i); int foo2(int i); The modifiers

More information

מחרוזות ב Java ותכנות מונחה בדיקות )Test Driven Development(

מחרוזות ב Java ותכנות מונחה בדיקות )Test Driven Development( מחרוזות ב Java ותכנות מונחה בדיקות )Test Driven Development( תוכנה 1 תרגול 8 String Immutability Strings are constants String s = " Tea "; s = s.trim(); s = s.replace('t', 'S'); s 1 2 3 " Tea " "Tea" "Sea"

More information

תרגול 6 רקורסיה ותכנות מונחה עצמים

תרגול 6 רקורסיה ותכנות מונחה עצמים מבוא למדעי המחשב 2017 תרגול 6 רקורסיה ותכנות מונחה עצמים מבוא למדעי המחשב 1 ראינו בהרצאה רקורסיה תכנות מונחה עצמים: מחלקה ואובייקט שדות, בנאים ושיטות מימוש מערך דינאמי של ראשוניים בתרגול היום רקורסיה הדפסת

More information

Eclipse (1/3) Deepak Dhungana Institute for System Engineering and Automation

Eclipse (1/3) Deepak Dhungana Institute for System Engineering and Automation Eclipse (1/3) Deepak Dhungana dhungana@ase.jku.at Institute for System Engineering and Automation Thomas Wuerthinger wuerthinger@ssw.jku.at Institute for System Software Johannes Kepler University Linz,

More information

קורס תכנות שיעור שני: שימוש במשתנים,

קורס תכנות שיעור שני: שימוש במשתנים, קורס תכנות שיעור שני: שימוש במשתנים, בקרת זרימה, לולאות 1 נושאי השיעור היום משתנים )variables( טיפוסי משתנים בשפת C הגדרת משתנים השמה למשתנים פעולות על משתנים קליטת ערכים מהמשתמש הדפסה משתנים בקרת זרימה

More information

Engineering Programming A

Engineering Programming A Engineering Programming A תרגול 5 25.11.2012 מערכים חד-מימדיים )תזכורת( לדוגמא: מערך בשם Arr בגודל 8 שאיבריו מטיפוס int 3 7 5 6 8 1 23 16 0 1 2 3 4 5 6 7 ב - arr[0] ב יושב ערך שהוא המספר השלם 3 arr[1]

More information

Nir Adar

Nir Adar שפת Java למתכנתי ++C - חלק שני מסמך זה הורד מהאתר. אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש במידע המופיע במסמך, וכן לנכונות

More information

9. טופס הזמנת מוצרים טופס ההזמנה הוא טופס מורכב. מעורבים בו 4 טבלאות נתונים. קשרי הגומלין בין הטבלאות : הטופס :

9. טופס הזמנת מוצרים טופס ההזמנה הוא טופס מורכב. מעורבים בו 4 טבלאות נתונים. קשרי הגומלין בין הטבלאות : הטופס : 9. טופס הזמנת מוצרים טופס ההזמנה הוא טופס מורכב. מעורבים בו 4 טבלאות נתונים. קשרי הגומלין בין הטבלאות : הטופס : 1 בהרצה : הוספת פריט רשימת פריטים ההכנה לעבודה : 1. להוסיף שתי טבלאות למאגר טבלת orders וטבלת.orderDetail

More information

מבוא לתכנות ב- JAVA מעבדה 2

מבוא לתכנות ב- JAVA מעבדה 2 מבוא לתכנות ב- JAVA מעבדה 2 מה בתרגול טיפוסים פרימיטיביים המרות טיפוסים אופרטורים יחסיים ולוגיים משפט if-else בתרגול הקודם טיפוסים פרימיטביים לייצוג מספרים שלמים וממשיים ואופרטורים לפעולות בין מספרים.1

More information

תוכנה 1. תרגול 1: סביבת העבודה ומבוא ל- Java

תוכנה 1. תרגול 1: סביבת העבודה ומבוא ל- Java תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1718b/ מתרגלים: ברית יונגמן )שעת קבלה: רביעי ב- 9:00 בתיאום מראש( שי גרשטיין )שעת קבלה: רביעי ב- 18:00,

More information

<exp> ::= <define> <cexp> <define> ::= ( define <var-decl> <cexp> ) / DefExp(var:VarDecl, val:cexp)

<exp> ::= <define> <cexp> <define> ::= ( define <var-decl> <cexp> ) / DefExp(var:VarDecl, val:cexp) הנחיות כלליות: תאריך הבוחן: 10.5.2018 שם המרצה: מני אדלר,מיכאל אלחדד, ירון גונן מבחן בקורס: עקרונות שפות תכנות מס' קורס: 202-1-2051 מיועד לתלמידי: מדעי המחשב והנדסת תוכנה שנה: ב' סמסטר: ב' משך הבוחן: 2

More information

ספרית התבניות הסטנדרטית (STL) כתיבת אלגוריתמים גנריים מצביעים חכמים. .vector. list iterator נכיר תחילה את האוסף הפשוט ביותר בספריה

ספרית התבניות הסטנדרטית (STL) כתיבת אלגוריתמים גנריים מצביעים חכמים. .vector. list iterator נכיר תחילה את האוסף הפשוט ביותר בספריה ספרית התבניות הסטנדרטית (STL) כתיבת אלגוריתמים גנריים מצביעים חכמים vector list iterator 2 קיימת בכל מימוש של ++C מכילה אוספים (Containers) ואלגוריתמים נכיר תחילה את האוסף הפשוט ביותר בספריה.vector מערך

More information

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions מבוא לתיכנות עם MATLAB 234127 Lecture 5: Boolean logic and Boolean expressions Written by Prof. Reuven Bar-Yehuda, Technion 2013 Based on slides of Dr. Eran Eden, Weizmann 2008 1 motivation Proper academic

More information

תוך כדי ריצה יכולה לבוא אירוע שמפסיק את מהלך הריצה )או באופן לא רצוני כגון שיחה נכנסת או באופן רצוני על ידי זימון )pauseapp()

תוך כדי ריצה יכולה לבוא אירוע שמפסיק את מהלך הריצה )או באופן לא רצוני כגון שיחה נכנסת או באופן רצוני על ידי זימון )pauseapp() בואו נכיר את ה- Midlet מחזור החיים של ה- Midlet במהלך חיי ה- Midlet הוא נמצא ב- 3 מצבים. מצב ריצה שמזמן את הפעולה StartApp() תוך כדי ריצה יכולה לבוא אירוע שמפסיק את מהלך הריצה )או באופן לא רצוני כגון שיחה

More information

מבוא לתכנות ב- JAVA תרגול 6

מבוא לתכנות ב- JAVA תרגול 6 מבוא לתכנות ב- JAVA תרגול 6 מה בתרגול )methods( פונקציות/שיטות ב- Java הגדרת פונקציה קריאה/הפעלה העברת ארגומנטים ערכי החזרה מבוא לפונקציות- שימוש חוזר בקוד נניח שבמהלך תוכנית נדרשתם לחשב את הסכום של המספרים

More information

$ gcc check.c. $ a.out. $ gcc check.c -o check. $ check. $ gcc -Wall check.c -o check. #include <stdio.h>

$ gcc check.c. $ a.out. $ gcc check.c -o check. $ check. $ gcc -Wall check.c -o check. #include <stdio.h> תכנות בסיסי בשפת C תוכנית ראשונה תוכנית ב - C מורכבת מאוסף פונקציות והגדרות טיפוסים. C איננה שפה object oriented כך שאין בה מושגים של מחלקה ואובייקט. נתחיל בתוכנית הראשונה המסורתית, זו המדפיסה הודעה יחידה

More information

תוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Array Creation and Initialization. Loop through Arrays

תוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Array Creation and Initialization. Loop through Arrays מערכים Array: A fixed-length data structure for storing multiple values of the same type תוכנה 1 Example: An array of odd numbers: Indices (start from 0) 0 1 2 3 4 5 6 7 odds: 1 3 5 7 9 11 13 15 odds.length

More information

תוכנה 1 טיפוסי השפה טיפוסים לא פרימיטיביים הטיפוסים הפרימיטיביים מחרוזות המרה למספרים תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות

תוכנה 1 טיפוסי השפה טיפוסים לא פרימיטיביים הטיפוסים הפרימיטיביים מחרוזות המרה למספרים תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות טיפוסי השפה תוכנה 1 תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות טיפוסים יסודיים (פרימיטיביים): 8 טיפוסים מוגדרים בשפה שמיועדים להכיל ערכים פשוטים: מספרים שלמים: byte, short, int, long מספרים ממשיים: float,

More information

Amortized Analysis, Union-Find,

Amortized Analysis, Union-Find, Practical Session No. 13 Amortized Analysis, Union-Find, AMORTIZED ANALYSIS Refers to finding the average running time per operation, over a worst-case sequence of operations. Amortized analysis differs

More information

תוכנה 1 3 תרגול מס' מערכים ומבני בקרה

תוכנה 1 3 תרגול מס' מערכים ומבני בקרה תוכנה 1 3 תרגול מס' מערכים ומבני בקרה מערכים Array: A fixed-length data structure for storing multiple values of the same type Example: An array of odd numbers: Indices (start from 0) 0 1 2 3 4 5 6 7 odds:

More information

LaserJet Enterprise M506

LaserJet Enterprise M506 LaserJet Enterprise M506 M506n M506dn Installation Guide www.hp.com/support/ljm506 1 Select a sturdy, well-ventilated, dust-free area, away from direct sunlight to position the printer. 2 M506n M506dn

More information

מבוא למדעי המחשב תרגול 12 מחסנית )Stack( memoization

מבוא למדעי המחשב תרגול 12 מחסנית )Stack( memoization מבוא למדעי המחשב 2017 תרגול 12 מחסנית )Stack( memoization בתרגול היום מחסנית בדיקת איזון סוגריים בביטוי אריתמטי משולש Pascal לא רקורסיבי memoization דוגמאות שימוש: בעיית העודף תזכורת: מחסנית :)stack( מבנה

More information

קורס תכנות כתובות בזיכרון כתובות בזכרון מצביעים וכתובות מצביעים וכתובות שיעור שביעי: מבנים, הקצאת זיכרון דינאמית האופרטור &

קורס תכנות כתובות בזיכרון כתובות בזכרון מצביעים וכתובות מצביעים וכתובות שיעור שביעי: מבנים, הקצאת זיכרון דינאמית האופרטור & כתובות בזיכרון קורס תכנות int x = 10; char c = a ; 10 784658 'a' 26537 שם x כתובת 784658 שיעור שביעי: מבנים, הקצאת זיכרון דינאמית 26537 c 1 הגדרת מצביע variable( )pointer כתובות בזכרון האופרטור & מחזיר

More information

Advanced Lab in Computer Communications Meeting 1 Layers Model, Codes, Ethernet. Instructor: Tom Mahler

Advanced Lab in Computer Communications Meeting 1 Layers Model, Codes, Ethernet. Instructor: Tom Mahler Advanced Lab in Computer Communications Meeting 1 Layers Model, Codes, Ethernet Instructor: Tom Mahler Course Objective הודעות כלליות מעבר על דף מידע OSI Model Classical 7 layers model IP model Application

More information

תרגול 12. Standard Template Library כתיבת אלגוריתמים גנריים מצביעים חכמים

תרגול 12. Standard Template Library כתיבת אלגוריתמים גנריים מצביעים חכמים תרגול 12 Standard Template Library כתיבת אלגוריתמים גנריים מצביעים חכמים ספרית התבניות הסטנדרטית קיימת בכל מימוש של ++C מכילה אוספים (Containers) ואלגוריתמים. משתמשת בתבניות :(templates) אוספי הנתונים

More information

תרגול מספר 3: מערכים

תרגול מספר 3: מערכים היום בתרגול:.1.2 תרגול מספר 3: מערכים מערך חד-מימדי: מה זה מערך ולמה צריך אותו? איך מגדירים? איך זה נראה בזכרון? דוגמאות לשימוש במערך חד-מימדי השוואה בין משתנה פרימיטיבי למשתנה שאינו פרימיטיבי מערך דו-מימדי:

More information

Introduction to Programming in C תרגול 8

Introduction to Programming in C תרגול 8 Introduction to Programming in C תרגול 8 1 1 נושאים מצביעים רקע אופרטורים על מצביעים מצביעים כפרמטרים לפונקציה הקצאה דינמית מבנים תאור הזיכרון של המחשב: מצביעים ניתן לחשוב על זיכרון המחשב כעל רצף של תאים,

More information

תוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Loop through Arrays. Array Creation and Initialization

תוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Loop through Arrays. Array Creation and Initialization מערכים תוכנה 1 Array: A fixed-length data structure for storing multiple values of the same type Example from last week: An array of odd numbers: Indices (start from 0) 0 1 2 3 4 5 6 7 תרגול 2: מערכים

More information

גירסה

גירסה גירסה 1.00 29.02.2004 לולאות בשפת C מסמך זה הורד מהאתר.http://underwar.livedns.co.il אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש

More information

הנכות 1 םוכיס לוגרת 13 1

הנכות 1 םוכיס לוגרת 13 1 תוכנה 1 סיכום תרגול 13 1 בחינה באופק! הבחינה תכלול את כל הנושאים שכיסינו במהלך הסמסטר: כל ההרצאות כל תרגולים כל תרגילי בית חומר סגור שאלות אמריקאיות 2 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים

More information

סכום (סדרת ערכים) אחרת - דוגמא: סכום-ספרות (num) אם < 10 num החזר 1 או אם = 0 = num החזר 0 public static int numofdigits (int num)

סכום (סדרת ערכים) אחרת - דוגמא: סכום-ספרות (num) אם < 10 num החזר 1 או אם = 0 = num החזר 0 public static int numofdigits (int num) 1 תבנית צבירה תבניות אלגוריתמיות לפעולות רקורסיביות תבנית צבירה לסדרת ערכים: סכום (סדרת ערכים) החזר את ערך הקצה + סכום (סדרת הערכים ללא ערך הקצה) דוגמא: פעולה המחזירה את סכום הספרות שבמספר שלם לא שלילי

More information

שיעור מספר 3: "מחלקות וטיפוסים"

שיעור מספר 3: מחלקות וטיפוסים שיעור מספר 3: "מחלקות וטיפוסים" בית הספר למדעי המחשב על סדר היום מודל הזיכרון של Java Heap and Stack העברת ארגומנטים מנגנוני שפת Java עצמים ושירותי מופע 2 העברת ארגומנטים כאשר מתבצעת קריאה לשרות, ערכי

More information

מבוא למדעי המחשב השפעת השינוי על סטודנט הרצאה 18: פולימורפיזם ומחלקות אבסטרקטיות אם ברצוננו ששכר הלימוד לא יעלה על 2500.

מבוא למדעי המחשב השפעת השינוי על סטודנט הרצאה 18: פולימורפיזם ומחלקות אבסטרקטיות אם ברצוננו ששכר הלימוד לא יעלה על 2500. public class { private static final int COURSE_PRICE = 1000; private String nae; private int id; private int nuofcourses; מבוא למדעי המחשב הרצאה 18 פולימורפיזם ומחלקות אבסטרקטיות תזכורת public (int id,

More information

Tutorial 10. Introduction to C++ שימו

Tutorial 10. Introduction to C++ שימו Introduction to ++ שימו תרגול זה אינו התרגול הרישמי של הקורס. הוא מבוסס על חוברת התרגולים אך מכיל שינויים, הסברים נוספים ודוגמאות שונות או נוספות. + + תוכנ ית רא שונה ב הכרו ת עם + + תרגול // First ++

More information

קורס תכנות בשיעור הקודם למדנו על רקורסיה שיעור שישי: מערכים פונקציה רקורסיבית שאלה חישוב נוסחאות רקורסיביות בשפת C

קורס תכנות בשיעור הקודם למדנו על רקורסיה שיעור שישי: מערכים פונקציה רקורסיבית שאלה חישוב נוסחאות רקורסיביות בשפת C בשיעור הקודם למדנו על רקורסיה פתרנו את בעיית מגדלי הנוי בעזרת רקורסיה כלומר בעזרת פונקציה שקוראת לעצמה. רקורסיה מאפשרת לנו לפתור בעיה "גדולה" בעזרת פתרון של בעיות "קטנות" המרכיבות אותה. קורס תכנות שיעור

More information

Eclipse Layouts. by Shantha Ramachandran. Department of Computer Science, University of Manitoba, Winnipeg, Manitoba, Canada

Eclipse Layouts. by Shantha Ramachandran. Department of Computer Science, University of Manitoba, Winnipeg, Manitoba, Canada 1, 2 by Shantha Ramachandran, University of Manitoba, Winnipeg, Manitoba, Canada Last revised: June 4, 2003 Overview: In this section, we will be discussing the four different types of layout managers

More information

תוכנה 1 תרגול מספר 10: תרגיל חזרה חברת הייטק בית הספר למדעי המחשב אוניברסיטת תל אביב

תוכנה 1 תרגול מספר 10: תרגיל חזרה חברת הייטק בית הספר למדעי המחשב אוניברסיטת תל אביב 1 תוכנה 1 תרגול מספר 10: תרגיל חזרה חברת הייטק בית הספר למדעי המחשב אוניברסיטת תל אביב 1 2 חברת הייטק בתרגיל זה נתרגל מספר נושאים אותם למדנו בשיעורים האחרונים: עיצוב ובניית מודל המורכב ממחלקות לתיאור סביבה

More information

רשימות דילוגים Skip Lists

רשימות דילוגים Skip Lists Lecture6 of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds רשימות דילוגים Skip Lists Skip lists: A probabilistic Alternative to Balanced Trees, William Pugh, Communications of the

More information

גרסאות AV נתמכות ב Juniper ואופן ביצוע עדכון חתימות

גרסאות AV נתמכות ב Juniper ואופן ביצוע עדכון חתימות גרסאות AV נתמכות ב Juniper ואופן ביצוע עדכון חתימות Avast AVG Avira F-Secure Kaspersky McAfee NOD32 Norton Anti-Virus Symantec Anti-Virus Trend Micro Zone Alarm -1 - חזרה לתחילת המסמך Avast Antivirus Avast!

More information

תרגול מס' 5: IO )קלט-פלט(

תרגול מס' 5: IO )קלט-פלט( תוכנה 1 אוניברסיטת תל אביב תרגול מס' 5: IO )קלט-פלט( זרמי קלט וזרמי פלט Streams(,(Input & Output קוראים וכותבים, והשימוש בהם לצורך עבודה עם קבצים 2 Input/Output in Java פעולות קלט-פלט הן רכיב מרכזי בכל

More information

הוראות חיבור e-port בפרוטוקול Art-Net למערכות תאורה שונות

הוראות חיבור e-port בפרוטוקול Art-Net למערכות תאורה שונות 30.06.2014 הוראות חיבור e-port בפרוטוקול Art-Net למערכות תאורה שונות המסמך נכתב ונערך ע"י רונן בן-הרוש עבור חברת דנאור מערכות תיאטרון ואולפנים בע"מ. http://www.danor.com הבדיקות נעשו באולם רובינא, בתיאטרון

More information

Computer Programming A תרגול 9

Computer Programming A תרגול 9 Computer Programming A תרגול 9 1 מטרת התרגול הקצאת זיכרון מבנים רשימות דינאמית ניהול הזיכרון בתוכנית עד כה כל המשתנים שראינו היו לוקאליים. משך הקיום של משתנים מקומיים הוא הזמן אשר הפונקציה בה הם נמצאים

More information

Java פעולות עוברות בירושה סביבת יסודות מדעי המחשב נספח הורשה

Java פעולות עוברות בירושה סביבת יסודות מדעי המחשב נספח הורשה 1 נספח הורשה פעולות עוברות בירושה.1 הפעולה ToString המחלקה קלף Card נכתוב את המחלקה המגדירה עצם מסוג קלף. תכונות המחלקה: מחרוזת המתארת את צורת הקלף )תלתן, מעוין, לב, עלה( מספר שלם בתחום 13-1 )כולל( המהווה

More information

יישומונים (Applets) 2007 Zindell Technologies, Ltd. הקדמה. המגבלות על פעולותיו של ה- applet. המחלקה Applet. המחלקה Graphics.

יישומונים (Applets) 2007 Zindell Technologies, Ltd. הקדמה. המגבלות על פעולותיו של ה- applet. המחלקה Applet. המחלקה Graphics. 1 יישומונים (Applets) הקדמה המגבלות על פעולותיו של ה- applet המחלקה Applet המחלקה Graphics תגית ה- applet העברת פרמטרים ל- applet מחזור החיים של ה- applet הסביבה שבה פועל ה- applet ה. ה. 2 הקדמה ה- applet

More information

תור שימושים בעולם התוכנה

תור שימושים בעולם התוכנה מבוא למדעי המחשב הרצאה : Queue, Iterator & Iterable תור מבנה נתונים אבסטרקטי תור שימושים בעולם התוכנה השימושים של תורים בעולם התוכנה מזכירים מאוד תורים במציאות: )VoIP( )YouTube( מקלדת שידור סרט באינטרנט

More information

ת ונכת סרוק תורשוקמ תומישר :יעישת רועיש 1

ת ונכת סרוק תורשוקמ תומישר :יעישת רועיש 1 קורס תכנות שיעור תשיעי: רשימות מקושרות 1 הקצאה דינאמית של מערכים דו-ממדיים )לפחות( שלוש גישות אפשריות:.1 מערך של מערכים מצביעים לתוך מערך "גדול".2 3. מצביע יחיד למערך גדול 2 The Interface 3 (Simple) Usage

More information

שאלה 1, סעיף ב )11 נק'(

שאלה 1, סעיף ב )11 נק'( שאלה 1, סעיף א )8 נק'( public static boolean lexlt(string s1, String s2) for (int i=0; i

More information

עקרונות שפות תכנות 2016 תרגול 8 Type Inference System. Substitution Interpreter.

עקרונות שפות תכנות 2016 תרגול 8 Type Inference System. Substitution Interpreter. עקרונות שפות תכנות 2016 תרגול 8 Type Inference System. Substitution Interpreter. Type Inference System The Type Inference System is a Scheme Implementation of the algorithm for Type Checking and Inference

More information

תרגילים ופתרונות בשפת - C הסתעפויות

תרגילים ופתרונות בשפת - C הסתעפויות תרגילים ופתרונות בשפת - C הסתעפויות כתב וערך: שייקה בילו תרגיל - 1 כתוב תוכנית שתקבל מהמשתמש שלושה מספרים, ותציג את הגדול מביניהם על המסך. #include void main() int mis1, mis2, mis3, max; printf("please

More information

CSS תגיות עיצוב - Document Level style sheet. הגדרת עיצוב inline { ;ערך : תכונה ;ערך :תכונה } שם-התגית CSS תכנות בסביבת האינטרנט 1

CSS תגיות עיצוב - Document Level style sheet. הגדרת עיצוב inline { ;ערך : תכונה ;ערך :תכונה } שם-התגית CSS תכנות בסביבת האינטרנט 1 תכנות בסביבת האינטרנט 1 תגיות עיצוב - הגדרות עיצוב לגופן, צבע, יישור וכד'. קיימות חמש רמות לכתיבה והוספת עיצובים:.1 style - In Line עיצוב ברמת התגית..2 sheet - Document Level style עיצוב ברמת המסמך. 3.

More information

ב ה צ ל ח ה! אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ה תשרי תשע"ח 15/10/17 שמות המורים: ציון סיקסיק מיועד לתלמידי : א'

ב ה צ ל ח ה! אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כה תשרי תשעח 15/10/17 שמות המורים: ציון סיקסיק מיועד לתלמידי : א' אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ה תשרי תשע"ח 15/10/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : א' מועד קיץ סמ' שנה תשע"ז 3 שעות משך

More information

תוכנה 1 תרגול מספר 10: תרגיל חברת הייטק בית הספר למדעי המחשב אוניברסיטת תל אביב

תוכנה 1 תרגול מספר 10: תרגיל חברת הייטק בית הספר למדעי המחשב אוניברסיטת תל אביב 1 תוכנה 1 תרגול מספר 10: תרגיל חברת הייטק בית הספר למדעי המחשב אוניברסיטת תל אביב 1 2 חברת הייטק בתרגיל זה נתרגל מספר נושאים אותם למדנו בשיעורים האחרונים: עיצוב ובניית מודל המורכב ממחלקות לתיאור סביבה

More information

תוכנה 1 בשפת Java תרגול מספר 9: הורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב

תוכנה 1 בשפת Java תרגול מספר 9: הורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב תרגול מספר 9: הורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב ירושה ממחלקות קיימות ראינו בהרצאה שתי דרכים לשימוש חוזר בקוד של מחלקה קיימת: הכלה + האצלה ירושה המחלקה היורשת יכולה להוסיף פונקציונליות שלא

More information

קורס תכנות רשימה מקושרת דוגמה: חיפוש מעבר על רשימה דוגמא: שחרור רשימה מקושרת דוגמא: הוספת אברים שלא בהתחלה

קורס תכנות רשימה מקושרת דוגמה: חיפוש מעבר על רשימה דוגמא: שחרור רשימה מקושרת דוגמא: הוספת אברים שלא בהתחלה רשימה מקושרת רשימה היא אוסף סדור של ערכים פעולות רשימה לעומת מערך קורס תכנות שיעור עשירי: מיונים, חיפושים, קצת ניתוח זמני ריצה, קצת תיקון טעויות ועוד על רשימות 3 5 7 9 typedef struct node int data; struct

More information

- מבחן. - 4 עבודות ב- JAVA. הגשה בזוגות דרך ה- System Submission

- מבחן. - 4 עבודות ב- JAVA. הגשה בזוגות דרך ה- System Submission 1 - מבחן. - 4 עבודות ב- JAVA 60% 40% הגשה בזוגות דרך ה- System Submission 2 UML Class Diagrams Packages Class Path JAR Files חלק ראשון: חלק שני: 3 An abstraction of software features A structure that singles

More information

Object-Oriented Analysis and Design

Object-Oriented Analysis and Design Object-Oriented Analysis and Design Session 2a: Structure Modeling Object-Oriented Analysis and Design 1 Outline 1. Objects and Classes 4 2. Basic Association Concepts.17 3. Class Diagrams and Object (instance)

More information

Practical Session No. 14 Topological sort,amortized Analysis

Practical Session No. 14 Topological sort,amortized Analysis Practical Session No. 14 Topological sort,amortized Analysis Topological- Sort Topological sort Ordering of vertices in a directed acyclic graph (DAG) G=(V,E) such that if there is a path from v to u in

More information